package com.tyk.bookstore.back.product.service;


import com.tyk.bookstore.back.common.core.model.type.BinVo;
import com.tyk.bookstore.back.common.core.model.type.SuggestionQuery;
import com.tyk.bookstore.back.product.manager.excel.model.PublisherExcelVo;
import com.tyk.bookstore.back.product.model.query.PublisherAddQuery;
import com.tyk.bookstore.back.product.model.query.PublisherPageQuery;
import com.tyk.bookstore.back.product.model.query.PublisherUpdateQuery;
import com.tyk.bookstore.back.product.model.vo.PublisherPageVo;
import com.tyk.bookstore.back.product.model.vo.PublisherVo;

import java.util.List;
import java.util.Set;

/**
 * @author tyk
 * @description 出版社管理
 */
public interface PublisherService {

    /**
     * 获取出版社详情
     */
    PublisherVo getById(Long id);

    /**
     * 分页查询出版社
     */
    PublisherPageVo getPage(PublisherPageQuery query);

    /**
     * 添加出版社
     */
    void add(PublisherAddQuery query);

    /**
     * 更新出版社
     */
    void updateById(PublisherUpdateQuery query);

    /**
     * 删除出版社
     */
    void deleteById(Long id);

    /**
     * 批量删除出版社
     */
    void deleteBatchByIdSet(Set<Long> idSet);

    /**
     * 出版社搜索建议列表
     */
    List<BinVo> getSuggestionList(SuggestionQuery query);

    /**
     * 获取出版社名称列表
     */
    List<BinVo> getNameVoList();

    /**
     * 获取Excel导出数据
     *
     * @param query 同分页查询参数
     * @return Excel导出数据
     */
    List<PublisherExcelVo> getPublisherExcelVoList(PublisherPageQuery query);

    /**
     * 保存书籍Excel
     *
     * @param publisherList 出版社列表
     */
    void savePublisherExcelVoList(List<PublisherExcelVo> publisherList);
}
